Computer algebra systems are computer-implemented applications that manipulate mathematical expressions in symbolic form. Computer algebra has many applications in fields such as physics, engineering, and education.
One specific function performed by many computer algebra systems is polynomial factorization. The Berlekamp-Zassenhaus algorithm is an algorithm for factoring polynomials with rational coefficients. The complexity of the Berlekamp-Zassenhaus algorithm depends exponentially on the number of modular factors of the polynomial.
Computer algebra systems, in general, are challenged by polynomials that represent an infinite series. Furthermore, many computer algebra algorithms function best when applied to monic polynomials (i.e., polynomials with a leading coefficient of 1). Depending on the form of an input polynomial, and the processing to be performed, it is sometimes useful to calculate the inverse of the input polynomial and/or to convert a non-monic input polynomial to a monic polynomial.